package com.zwkj.pojo.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.zwkj.common.DigestType;
import lombok.Data;
import lombok.NonNull;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.Map;

/**
 * @author Gap
 * @version 1.0
 * @createDate 时间:2023/12/11
 * @description 描述:
 */
@Data
public class FileVo {

    /**
     * 文档 ID，必须与传入的file_id一致，最大长度 48
     */
    @JsonProperty("id")
    private String id;
    /**
     * 文档名称，最大长度 240，不能包含下列特殊字符：\|":*?<>
     */
    @JsonProperty("name")
    private String name;
    /**
     * 文档版本号，无符号 int32 位，从 1 开始，每次保存后递增，如果已经迭代了多个版本，这里您需要返回最新的版本号
     */
    @JsonProperty("version")
    private Integer version;
    /**
     * 文档大小，单位 byte
     */
    @JsonProperty("size")
    private Integer size;
    /**
     * 文档创建时间戳，单位纪元秒
     */
    @JsonProperty("create_time")
    private Integer createTime;
    /**
     * 文档最后修改时间戳，单位纪元秒
     */
    @JsonProperty("modify_time")
    private Integer modifyTime;
    /**
     * 文档创建者 Id
     */
    @JsonProperty("creator_id")
    private String creatorId;
    /**
     * 文档最后修改者 Id
     */
    @JsonProperty("modifier_id")
    private String modifierId;


    /**
     * 文档下载地址
     */
    @JsonProperty("url")
    private String url;
    /**
     * 文档校验和 (checksum)
     */
    @JsonProperty("digest_type")
    private DigestType digestType;
    /**
     * 文档校验和算法 md5 或者 sha1
     */
    @JsonProperty("digest")
    private String digestValue;
    /**
     * 请求文档下载地址所需要的额外请求头，例如某些云存储商会要求额外的签名头等
     */
    @JsonProperty("headers")
    private Map<String, String> headers;

}
